import java.util.Arrays;

//数组的使用3
public class TestDemo {
    //Java中自带的库方法（续）【前面学过了一些】
    public static void main(String[] args) {
        //我们可以在指定的位置去进行二分查找
        int[] array = new int[]{24,75,14,32,82789,5700446,34524,6890,5789,24580,2347778,33476678,334342,768876545,8989};
        Arrays.sort(array);
        System.out.println(Arrays.binarySearch(array,8,14, 5700446));//中间的两个数是范围即是下标
        System.out.println(array.length);
        System.out.println(Arrays.binarySearch(array,5789));
    }

    public static void main2(String[] args) {
        int[] array1 = new int[]{1,2,13,4,15};
        Arrays.sort(array1);
        System.out.println(Arrays.toString(array1));
        Arrays.binarySearch(array1,15);
        System.out.println("=====================================================");

        int[] array2 = new int[]{1,2,13,4,15};
        boolean flg1 = Arrays.equals(array2,array1);//equals方法用来比较数组中的对应的位置的数据是否一样
        System.out.println(flg1);//现在数组1进行了排序，所以数组2与其不一样
        Arrays.sort(array2);//现在我也对数组2进行了排序
        boolean flg2 = Arrays.equals(array2,array1);
        //equals方法来比较不同数组相同位置的数据是否相同
        System.out.println(flg2);

        int[] array3 = new int[10];
        //帮你直接填充数据！
        Arrays.fill(array3,-1);
        System.out.println(Arrays.toString(array3));
        //可以填充一定的范围的数据
        int[] array4 = new int[10];
        Arrays.fill(array4,0,4,9);//[0,4)在Java中可以一般都是左闭右开
        System.out.println(Arrays.toString(array4));

    }
    //冒泡排序
    public static void bubbleSort (int[] array){
        //i表示的是趟数
        for (int i = 0; i < array.length-1; i++) {
            //j要代表每一趟比较的此次数
            boolean flg = false;
            for (int j = 0; j < array.length-1-i; j++) {
                //减i是有i个元素已经比较完成了，为了去掉一些不必要的次数。
                if(array[j] > array[j + 1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
            if( flg == true){
                break;//这时候说明了交换的是有序的
                //因为有时候某一趟的时候就已经有序了，这个时候为了减少不必要的交换；
                //所以我们可以用break来进行跳出
            }
        }
    }
    public static void main3(String[] args) {
        int[] array = new int[]{8,4,9,3,6};
        bubbleSort(array);
        System.out.println(Arrays.toString(array));
//        for (int i = 0; i < array.length; i++) {
//            System.out.print(array[i] + " ");
//        }
    }
}
